package com.example.demo.sensitive.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * @ClassName CheckTask
 * @Description 敏感词检查任务实体类
 * @Author System
 * @Date 2025/9/19
 **/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("check_task")
public class CheckTask {

    /**
     * 任务ID
     */
    @TableId(value = "task_id", type = IdType.AUTO)
    private Long taskId;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 任务状态(pending-待执行, running-执行中, completed-已完成, failed-失败, cancelled-已取消)
     */
    private String status;

    /**
     * 关联的数据库配置ID
     */
    private Long databaseConfigId;

    /**
     * 选定的表 (JSON字符串或逗号分隔)
     */
    private String selectedTables;

    /**
     * 选定的敏感词 (JSON字符串或逗号分隔)
     */
    private String selectedKeywords;

    /**
     * 批处理大小
     */
    private Integer batchSize;

    /**
     * 检查配置(JSON格式)
     */
    private String checkConfig;

    /**
     * 任务进度百分比(0-100)
     */
    private Integer progressPercentage;

    /**
     * 已检查的表数量
     */
    private Integer checkedTables;

    /**
     * 总表数量
     */
    private Integer totalTables;

    /**
     * 已检查的记录数
     */
    private Long checkedRecords;

    /**
     * 总记录数(预估)
     */
    private Long totalRecords;

    /**
     * 发现问题数
     */
    private Integer foundIssues;
    
    /**
     * 耗时 (毫秒)
     */
    private Long elapsedTime;

    /**
     * 任务开始时间
     */
    private LocalDateTime startTime;

    /**
     * 任务结束时间
     */
    private LocalDateTime endTime;

    /**
     * 错误信息
     */
    private String errorMessage;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 创建人ID
     */
    private Long createBy;
}
